package com.cimp.domain.iqy;

import java.io.Serializable;

/**
 * [简要描述]:EPG详情-专辑或视频信息
 * [详细描述]:
 *
 * @author huojinhao
 * @date 2018/7/6
 */
public class MetaInfo implements Serializable{

    private static final long serialVersionUID = -4935449340505280978L;
    private Long primary;
    /**
     * 唯一 ID
        如果 url 里传入的 id 是 01 或者 08 结尾，那么此 id 字段对应的就是传入的 id；
     如果 url 里传入的 id 是 00 或者 07 结尾，并且传入的这个 id是专辑下的某个视频 id，那么此
     id 字段是传入的 id 所属的专辑id，epId 是传入的这个 id；如果 url 里传入的是 00 或者
     07 结尾，并且传入的这个 id 是单个视频，没有专辑，那么 id 和epId 都是传入的这个 id；
     从结果中反推确认：如果返回结果中 id 和 epId相等，说明传入的 epId 是个单视
     频，并是个单视频，没有专辑；如果返回结果中 id 和 epId不相等，并且返回结果中的 id 等
     于传入的 id，说明传入的 id 是个多集剧的专辑 id，以 01 或者 08结尾；
        如果返回结果中的 id 和 epId不相等，并且返回结果中的 epId等于传入的 id，说明传入的 id 是
     个多级剧下的某个视频 id，这个视频所属的这个多集剧的专辑 id是结果中的 id；
     */
    private long id;

    /**
     * 内容类型:content program
     */
    private String type;

    /**
     * CMS类型 单集 主集 子集
     */
    private Integer cmsType;

    /**
     * 下发状态
     */
    private int status;

    /**
     * 分域列表
     */
    private String pointList;

    /**
     * 省份编码列表
     */
    private String carrierIds;

    /**
     * 名称
     */
    private String name;

    /**
     * 详情类型：
     * 0 视频
     * 1 专辑
     */
    private String otype;

    /**
     * 一句话看点
     */
    private String focusName;

    /**
     * 专辑图，使用时需要拼接尺寸
     */
    private String picUrl;

    /**
     * 海报图
     */
    private String posterUrl;

    /**
     * 评分
     */
    private double score;

    /**
     * 播放次数
     */
    private long playCount;

    /**
     * 描述
     */
    private String desc;

    /**
     * 是否多集剧
     * 0 单集
     * 1 多集
     */
    private int seriesType;

    /**
     * 所属频道名称
     */
    private String cname;

    /**
     * 所属频道ID
     */
    private int cid;

    /**
     * 标签名称，以英文逗号隔开
     */
    private String tagNames;

    /**
     * 人物信息
     */
    private Persons persons;

    /**
     * 短标题
     */
    private String sname;

    /**
     * 是否独播：
     * 1 是
     * 其它否
     */
    private int excl;

    /**
     * 专辑的类型：
     * 1 来源专辑
     * 0 普通专辑
     */
    private int stype;

    /**
     * 是否 3D：
     * 1 是
     * 0 否
     */
    private int type3d;

    /**
     * 电视剧等多集剧的视频总数量
     */
    private int total;

    /**
     * 视频副标题
     */
    private String epFocus;

    /**
     * 视频的集数
     */
    private int epOrder;

    /**
     * 此视频是否允许下载，0 为都不可下载； 1 为是所有人可以下载; 2只有会员账号才可以下载
     */
    private int epIsDown;

    /**
     * 试看类型，没有此字段或者 0 时为没有试看，1 表示全集试看，2表示试看 6 分钟
     */
    private int epProbation;

    /**
     * 发布日期，格式：20130303
     */
    private String time;

    /**
     * 已有视频的最大集数，不严格等于已上线的视频的数量。
     */
    private int currCount;

    /**
     * 码流名称列表
     */
    private String streams;

    /**
     * 视频的 ID
     */
    private long eqId;

    /**
     * 视频的 vid
     */
    private String eqVid;

    /**
     * 视频的播放时长(秒)
     */
    private long eqLen;

    /**
     * 视频的名称
     */
    private String epName;

    /**
     * 首次上线时间，格式："2014-11-1214:58:56"。如果传入的 ID 是专辑
     * id(01 或者 08 结尾)，取的是专辑的initIssueTime，如果传入的 ID 是剧集
     * id（00 或者 07 结尾），取的是剧集的 initIssueTime
     */
    private String initIssueTime;

    /**
     * 如果传入的 ID 是个专辑 ID(01 或者 08 结尾)，这个字段是专辑下
     * 第一个视频的内容类型，如果传入的 ID 是个视频 ID(00 或者 07
     * 结尾)，那么这个字段是传入的这个视频 ID 的内容类型
     */
    private int contentType;

    /**
     * 请求传入的 ID 上下线状态：1 上线 其它下线
     */
    private int effective;

    /**
     * VIP 信息
     */
    private VipInfo vipInfo;

    /**
     * drm 属性，多个用逗号分隔；
     * 1:DRM_NONE 2:DRM_INTERTRUST
     * 3:DRM_CHINA
     */
    private String drm;

    /**
     * 跟播剧更新策略, 只有专辑才有策略 ，如果没有此字段或者为空，表示没有更新策略
     */
    private String strategy;

    /**
     * HDR 字段
     */
    private String dyRanges;

    /**
     * 专辑所属频道 ID
     */
    private int chnCid;

    /**
     * 业务类型,多个业务类型用逗号","分隔
     1:动画屋
     */
    private String bnsTypes;

    /**
     * 杜比音效类型，多个值以逗号","分隔
     * AUDIO_CHANNEL_5_1，
     * AUDIO_CHANNEL_STEREO 等
     *当传入 ID 为专辑时，该字段为取专辑下 eqId 对应的杜比音效类型
     */
    private String dolbyAudioChnType;

    /**
     * 热度
     */
    private long hot;

    /**
     * 热度展示类型
     * 0-播次; 1-热点; 2-不限制; 3-不显示(默认
     * 值)
     */
    private int hotSwitch;

    /**
     * 是否支持试看 0-不支持，1-支持(专辑/单
     * 视频维度)，无此字段表示不含试看信息
     */
    private int supportProb;

    /**
     *试看时长，单位为毫秒(专辑/单视频维
     * 度)，无此字段表示不含试看信息
     */
    private long probDuration;

    /**
     *播放次数
     * 该字段可能返回 0，厂商需做兼容处理
     * （例如返回 0 则不展示）
     */
    private long pCount;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getPointList() {
        return pointList;
    }

    public void setPointList(String pointList) {
        this.pointList = pointList;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getOtype() {
        return otype;
    }

    public void setOtype(String otype) {
        this.otype = otype;
    }

    public String getFocusName() {
        return focusName;
    }

    public void setFocusName(String focusName) {
        this.focusName = focusName;
    }

    public String getPicUrl() {
        return picUrl;
    }

    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }

    public String getPosterUrl() {
        return posterUrl;
    }

    public void setPosterUrl(String posterUrl) {
        this.posterUrl = posterUrl;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public long getPlayCount() {
        return playCount;
    }

    public void setPlayCount(long playCount) {
        this.playCount = playCount;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public int getSeriesType() {
        return seriesType;
    }

    public void setSeriesType(int seriesType) {
        this.seriesType = seriesType;
    }

    public String getCname() {
        return cname;
    }

    public void setCname(String cname) {
        this.cname = cname;
    }

    public int getCid() {
        return cid;
    }

    public void setCid(int cid) {
        this.cid = cid;
    }

    public String getTagNames() {
        return tagNames;
    }

    public void setTagNames(String tagNames) {
        this.tagNames = tagNames;
    }

    public Persons getPersons() {
        return persons;
    }

    public void setPersons(Persons persons) {
        this.persons = persons;
    }

    public Integer getCmsType() {
        return cmsType;
    }

    public void setCmsType(Integer cmsType) {
        this.cmsType = cmsType;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public int getExcl() {
        return excl;
    }

    public void setExcl(int excl) {
        this.excl = excl;
    }

    public int getStype() {
        return stype;
    }

    public void setStype(int stype) {
        this.stype = stype;
    }

    public int getType3d() {
        return type3d;
    }

    public void setType3d(int type3d) {
        this.type3d = type3d;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public String getEpFocus() {
        return epFocus;
    }

    public void setEpFocus(String epFocus) {
        this.epFocus = epFocus;
    }

    public int getEpOrder() {
        return epOrder;
    }

    public void setEpOrder(int epOrder) {
        this.epOrder = epOrder;
    }

    public int getEpIsDown() {
        return epIsDown;
    }

    public void setEpIsDown(int epIsDown) {
        this.epIsDown = epIsDown;
    }

    public int getEpProbation() {
        return epProbation;
    }

    public void setEpProbation(int epProbation) {
        this.epProbation = epProbation;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public int getCurrCount() {
        return currCount;
    }

    public void setCurrCount(int currCount) {
        this.currCount = currCount;
    }

    public String getStreams() {
        return streams;
    }

    public void setStreams(String streams) {
        this.streams = streams;
    }

    public long getEqId() {
        return eqId;
    }

    public void setEqId(long eqId) {
        this.eqId = eqId;
    }

    public String getEqVid() {
        return eqVid;
    }

    public void setEqVid(String eqVid) {
        this.eqVid = eqVid;
    }

    public long getEqLen() {
        return eqLen;
    }

    public void setEqLen(long eqLen) {
        this.eqLen = eqLen;
    }

    public String getEpName() {
        return epName;
    }

    public void setEpName(String epName) {
        this.epName = epName;
    }

    public String getInitIssueTime() {
        return initIssueTime;
    }

    public void setInitIssueTime(String initIssueTime) {
        this.initIssueTime = initIssueTime;
    }

    public int getContentType() {
        return contentType;
    }

    public void setContentType(int contentType) {
        this.contentType = contentType;
    }

    public int getEffective() {
        return effective;
    }

    public void setEffective(int effective) {
        this.effective = effective;
    }

    public VipInfo getVipInfo() {
        return vipInfo;
    }

    public void setVipInfo(VipInfo vipInfo) {
        this.vipInfo = vipInfo;
    }

    public String getDrm() {
        return drm;
    }

    public void setDrm(String drm) {
        this.drm = drm;
    }

    public String getStrategy() {
        return strategy;
    }

    public void setStrategy(String strategy) {
        this.strategy = strategy;
    }

    public String getDyRanges() {
        return dyRanges;
    }

    public void setDyRanges(String dyRanges) {
        this.dyRanges = dyRanges;
    }

    public int getChnCid() {
        return chnCid;
    }

    public void setChnCid(int chnCid) {
        this.chnCid = chnCid;
    }

    public String getBnsTypes() {
        return bnsTypes;
    }

    public void setBnsTypes(String bnsTypes) {
        this.bnsTypes = bnsTypes;
    }

    public String getDolbyAudioChnType() {
        return dolbyAudioChnType;
    }

    public void setDolbyAudioChnType(String dolbyAudioChnType) {
        this.dolbyAudioChnType = dolbyAudioChnType;
    }

    public String getCarrierIds() {
        return carrierIds;
    }

    public void setCarrierIds(String carrierIds) {
        this.carrierIds = carrierIds;
    }

    public Long getPrimary() {
        return primary;
    }

    public void setPrimary(Long primary) {
        this.primary = primary;
    }

    public long getHot() {
        return hot;
    }

    public void setHot(long hot) {
        this.hot = hot;
    }

    public int getHotSwitch() {
        return hotSwitch;
    }

    public void setHotSwitch(int hotSwitch) {
        this.hotSwitch = hotSwitch;
    }

    public int getSupportProb() {
        return supportProb;
    }

    public void setSupportProb(int supportProb) {
        this.supportProb = supportProb;
    }

    public long getProbDuration() {
        return probDuration;
    }

    public void setProbDuration(long probDuration) {
        this.probDuration = probDuration;
    }

    public long getpCount() {
        return pCount;
    }

    public void setpCount(long pCount) {
        this.pCount = pCount;
    }

    @Override
    public String toString() {
        return "MetaInfo{" +
                "primary=" + primary +
                ", id=" + id +
                ", type='" + type + '\'' +
                ", cmsType=" + cmsType +
                ", status=" + status +
                ", pointList='" + pointList + '\'' +
                ", carrierIds='" + carrierIds + '\'' +
                ", name='" + name + '\'' +
                ", otype='" + otype + '\'' +
                ", focusName='" + focusName + '\'' +
                ", picUrl='" + picUrl + '\'' +
                ", posterUrl='" + posterUrl + '\'' +
                ", score=" + score +
                ", playCount=" + playCount +
                ", desc='" + desc + '\'' +
                ", seriesType=" + seriesType +
                ", cname='" + cname + '\'' +
                ", cid=" + cid +
                ", tagNames='" + tagNames + '\'' +
                ", persons=" + persons +
                ", sname='" + sname + '\'' +
                ", excl=" + excl +
                ", stype=" + stype +
                ", type3d=" + type3d +
                ", total=" + total +
                ", epFocus='" + epFocus + '\'' +
                ", epOrder=" + epOrder +
                ", epIsDown=" + epIsDown +
                ", epProbation=" + epProbation +
                ", time='" + time + '\'' +
                ", currCount=" + currCount +
                ", streams='" + streams + '\'' +
                ", eqId=" + eqId +
                ", eqVid='" + eqVid + '\'' +
                ", eqLen=" + eqLen +
                ", epName='" + epName + '\'' +
                ", initIssueTime='" + initIssueTime + '\'' +
                ", contentType=" + contentType +
                ", effective=" + effective +
                ", vipInfo=" + vipInfo +
                ", drm='" + drm + '\'' +
                ", strategy='" + strategy + '\'' +
                ", dyRanges='" + dyRanges + '\'' +
                ", chnCid=" + chnCid +
                ", bnsTypes='" + bnsTypes + '\'' +
                ", dolbyAudioChnType='" + dolbyAudioChnType + '\'' +
                ", hot=" + hot +
                ", hotSwitch=" + hotSwitch +
                ", supportProb=" + supportProb +
                ", probDuration=" + probDuration +
                ", pCount=" + pCount +
                '}';
    }
}
